package com.shuda.business.channel.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.shuda.business.channel.entity.DataPoolEntity;
import com.shuda.common.dto.PageDTO;
import com.shuda.common.utils.PageResult;

import java.util.List;

/**
 * 数据池服务接口
 */
public interface DataPoolService {

    /**
     * 分页查询数据池列表
     */
    PageResult<DataPoolEntity> getDataPoolPage(PageDTO pageDTO, QueryWrapper<DataPoolEntity> queryWrapper);

    /**
     * 根据ID获取数据池
     */
    DataPoolEntity getById(Long id);

    /**
     * 创建数据池
     */
    void createDataPool(DataPoolEntity pool);

    /**
     * 更新数据池
     */
    void updateDataPool(DataPoolEntity pool);

    /**
     * 删除数据池
     */
    void deleteDataPool(Long id);

    /**
     * 批量删除数据池
     */
    void deleteDataPools(List<Long> ids);

    /**
     * 更新数据池状态
     */
    void updateDataPoolStatus(Long id, String status);

    /**
     * 启用数据池
     */
    void enableDataPool(Long id);

    /**
     * 禁用数据池
     */
    void disableDataPool(Long id);

    /**
     * 清空数据池
     */
    void clearDataPool(Long id);

    /**
     * 获取数据池统计信息
     */
    Object getDataPoolStatistics(Long id);

    /**
     * 获取所有启用的数据池
     */
    List<DataPoolEntity> getActiveDataPools();
}